{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "name": "RealTimePanoptic.ipynb",
      "provenance": [],
      "authorship_tag": "ABX9TyNIPuV/uhk4r7vZUPXItOBh",
      "include_colab_link": true
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "accelerator": "GPU"
  },
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "view-in-github",
        "colab_type": "text"
      },
      "source": [
        "<a href=\"https://colab.research.google.com/github/pushkar-khetrapal/realtime_panoptic/blob/master/RealTimePanoptic.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "yb5kUu07dEo6",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 119
        },
        "outputId": "46b4c71a-0e43-449b-f2b0-c6ea72ae4c50"
      },
      "source": [
        "%%shell\n",
        "git clone https://github.com/pushkar-khetrapal/realtime_panoptic.git"
      ],
      "execution_count": 1,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Cloning into 'realtime_panoptic'...\n",
            "remote: Enumerating objects: 90, done.\u001b[K\n",
            "remote: Counting objects:   1% (1/90)\u001b[K\rremote: Counting objects:   2% (2/90)\u001b[K\rremote: Counting objects:   3% (3/90)\u001b[K\rremote: Counting objects:   4% (4/90)\u001b[K\rremote: Counting objects:   5% (5/90)\u001b[K\rremote: Counting objects:   6% (6/90)\u001b[K\rremote: Counting objects:   7% (7/90)\u001b[K\rremote: Counting objects:   8% (8/90)\u001b[K\rremote: Counting objects:  10% (9/90)\u001b[K\rremote: Counting objects:  11% (10/90)\u001b[K\rremote: Counting objects:  12% (11/90)\u001b[K\rremote: Counting objects:  13% (12/90)\u001b[K\rremote: Counting objects:  14% (13/90)\u001b[K\rremote: Counting objects:  15% (14/90)\u001b[K\rremote: Counting objects:  16% (15/90)\u001b[K\rremote: Counting objects:  17% (16/90)\u001b[K\rremote: Counting objects:  18% (17/90)\u001b[K\rremote: Counting objects:  20% (18/90)\u001b[K\rremote: Counting objects:  21% (19/90)\u001b[K\rremote: Counting objects:  22% (20/90)\u001b[K\rremote: Counting objects:  23% (21/90)\u001b[K\rremote: Counting objects:  24% (22/90)\u001b[K\rremote: Counting objects:  25% (23/90)\u001b[K\rremote: Counting objects:  26% (24/90)\u001b[K\rremote: Counting objects:  27% (25/90)\u001b[K\rremote: Counting objects:  28% (26/90)\u001b[K\rremote: Counting objects:  30% (27/90)\u001b[K\rremote: Counting objects:  31% (28/90)\u001b[K\rremote: Counting objects:  32% (29/90)\u001b[K\rremote: Counting objects:  33% (30/90)\u001b[K\rremote: Counting objects:  34% (31/90)\u001b[K\rremote: Counting objects:  35% (32/90)\u001b[K\rremote: Counting objects:  36% (33/90)\u001b[K\rremote: Counting objects:  37% (34/90)\u001b[K\rremote: Counting objects:  38% (35/90)\u001b[K\rremote: Counting objects:  40% (36/90)\u001b[K\rremote: Counting objects:  41% (37/90)\u001b[K\rremote: Counting objects:  42% (38/90)\u001b[K\rremote: Counting objects:  43% (39/90)\u001b[K\rremote: Counting objects:  44% (40/90)\u001b[K\rremote: Counting objects:  45% (41/90)\u001b[K\rremote: Counting objects:  46% (42/90)\u001b[K\rremote: Counting objects:  47% (43/90)\u001b[K\rremote: Counting objects:  48% (44/90)\u001b[K\rremote: Counting objects:  50% (45/90)\u001b[K\rremote: Counting objects:  51% (46/90)\u001b[K\rremote: Counting objects:  52% (47/90)\u001b[K\rremote: Counting objects:  53% (48/90)\u001b[K\rremote: Counting objects:  54% (49/90)\u001b[K\rremote: Counting objects:  55% (50/90)\u001b[K\rremote: Counting objects:  56% (51/90)\u001b[K\rremote: Counting objects:  57% (52/90)\u001b[K\rremote: Counting objects:  58% (53/90)\u001b[K\rremote: Counting objects:  60% (54/90)\u001b[K\rremote: Counting objects:  61% (55/90)\u001b[K\rremote: Counting objects:  62% (56/90)\u001b[K\rremote: Counting objects:  63% (57/90)\u001b[K\rremote: Counting objects:  64% (58/90)\u001b[K\rremote: Counting objects:  65% (59/90)\u001b[K\rremote: Counting objects:  66% (60/90)\u001b[K\rremote: Counting objects:  67% (61/90)\u001b[K\rremote: Counting objects:  68% (62/90)\u001b[K\rremote: Counting objects:  70% (63/90)\u001b[K\rremote: Counting objects:  71% (64/90)\u001b[K\rremote: Counting objects:  72% (65/90)\u001b[K\rremote: Counting objects:  73% (66/90)\u001b[K\rremote: Counting objects:  74% (67/90)\u001b[K\rremote: Counting objects:  75% (68/90)\u001b[K\rremote: Counting objects:  76% (69/90)\u001b[K\rremote: Counting objects:  77% (70/90)\u001b[K\rremote: Counting objects:  78% (71/90)\u001b[K\rremote: Counting objects:  80% (72/90)\u001b[K\rremote: Counting objects:  81% (73/90)\u001b[K\rremote: Counting objects:  82% (74/90)\u001b[K\rremote: Counting objects:  83% (75/90)\u001b[K\rremote: Counting objects:  84% (76/90)\u001b[K\rremote: Counting objects:  85% (77/90)\u001b[K\rremote: Counting objects:  86% (78/90)\u001b[K\rremote: Counting objects:  87% (79/90)\u001b[K\rremote: Counting objects:  88% (80/90)\u001b[K\rremote: Counting objects:  90% (81/90)\u001b[K\rremote: Counting objects:  91% (82/90)\u001b[K\rremote: Counting objects:  92% (83/90)\u001b[K\rremote: Counting objects:  93% (84/90)\u001b[K\rremote: Counting objects:  94% (85/90)\u001b[K\rremote: Counting objects:  95% (86/90)\u001b[K\rremote: Counting objects:  96% (87/90)\u001b[K\rremote: Counting objects:  97% (88/90)\u001b[K\rremote: Counting objects:  98% (89/90)\u001b[K\rremote: Counting objects: 100% (90/90)\u001b[K\rremote: Counting objects: 100% (90/90), done.\u001b[K\n",
            "remote: Compressing objects: 100% (62/62), done.\u001b[K\n",
            "remote: Total 90 (delta 34), reused 66 (delta 19), pack-reused 0\u001b[K\n",
            "Unpacking objects: 100% (90/90), done.\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              ""
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 1
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "1bVB8REudi_d",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 224
        },
        "outputId": "e7a9016e-b8fa-4214-c389-24c388f11744"
      },
      "source": [
        "!wget https://wallup.net/wp-content/uploads/2016/01/256862-car-landscape-vehicle-road.jpg"
      ],
      "execution_count": 2,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "--2020-08-17 16:37:49--  https://wallup.net/wp-content/uploads/2016/01/256862-car-landscape-vehicle-road.jpg\n",
            "Resolving wallup.net (wallup.net)... 104.24.117.237, 104.24.116.237, 172.67.163.163, ...\n",
            "Connecting to wallup.net (wallup.net)|104.24.117.237|:443... connected.\n",
            "HTTP request sent, awaiting response... 200 OK\n",
            "Length: unspecified [image/jpg]\n",
            "Saving to: ‘256862-car-landscape-vehicle-road.jpg’\n",
            "\n",
            "\r          256862-ca     [<=>                 ]       0  --.-KB/s               \r         256862-car     [ <=>                ]  82.11K   260KB/s               \r        256862-car-     [  <=>               ] 386.04K   610KB/s               \r256862-car-landscap     [   <=>              ]   1.60M  1.98MB/s    in 0.8s    \n",
            "\n",
            "2020-08-17 16:37:50 (1.98 MB/s) - ‘256862-car-landscape-vehicle-road.jpg’ saved [1675401]\n",
            "\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "g-lH6sOVgz0h",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 224
        },
        "outputId": "f8fa4f6d-39a4-4720-cbd9-a25e1c9fdb30"
      },
      "source": [
        "!wget https://tri-ml-public.s3.amazonaws.com/github/realtime_panoptic/models/cvpr_realtime_pano_cityscapes_standalone_no_prefix.pth"
      ],
      "execution_count": 3,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "--2020-08-17 16:38:00--  https://tri-ml-public.s3.amazonaws.com/github/realtime_panoptic/models/cvpr_realtime_pano_cityscapes_standalone_no_prefix.pth\n",
            "Resolving tri-ml-public.s3.amazonaws.com (tri-ml-public.s3.amazonaws.com)... 52.217.40.132\n",
            "Connecting to tri-ml-public.s3.amazonaws.com (tri-ml-public.s3.amazonaws.com)|52.217.40.132|:443... connected.\n",
            "HTTP request sent, awaiting response... 200 OK\n",
            "Length: 122974869 (117M) [binary/octet-stream]\n",
            "Saving to: ‘cvpr_realtime_pano_cityscapes_standalone_no_prefix.pth’\n",
            "\n",
            "cvpr_realtime_pano_ 100%[===================>] 117.28M  37.9MB/s    in 3.1s    \n",
            "\n",
            "2020-08-17 16:38:04 (37.9 MB/s) - ‘cvpr_realtime_pano_cityscapes_standalone_no_prefix.pth’ saved [122974869/122974869]\n",
            "\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "R-faDq0Tiirs",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1000
        },
        "outputId": "0e3bc935-756a-48c9-95a1-f6dcc0e96a2e"
      },
      "source": [
        "%%bash \n",
        "pip uninstall -y apex\n",
        "git clone https://www.github.com/nvidia/apex\n",
        "cd apex\n",
        "python setup.py install"
      ],
      "execution_count": 4,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "\n",
            "\n",
            "torch.__version__  = 1.6.0+cu101\n",
            "\n",
            "\n",
            "running install\n",
            "running bdist_egg\n",
            "running egg_info\n",
            "creating apex.egg-info\n",
            "writing apex.egg-info/PKG-INFO\n",
            "writing dependency_links to apex.egg-info/dependency_links.txt\n",
            "writing top-level names to apex.egg-info/top_level.txt\n",
            "writing manifest file 'apex.egg-info/SOURCES.txt'\n",
            "writing manifest file 'apex.egg-info/SOURCES.txt'\n",
            "installing library code to build/bdist.linux-x86_64/egg\n",
            "running install_lib\n",
            "running build_py\n",
            "creating build\n",
            "creating build/lib\n",
            "creating build/lib/apex\n",
            "copying apex/__init__.py -> build/lib/apex\n",
            "creating build/lib/apex/normalization\n",
            "copying apex/normalization/__init__.py -> build/lib/apex/normalization\n",
            "copying apex/normalization/fused_layer_norm.py -> build/lib/apex/normalization\n",
            "creating build/lib/apex/contrib\n",
            "copying apex/contrib/__init__.py -> build/lib/apex/contrib\n",
            "creating build/lib/apex/amp\n",
            "copying apex/amp/__init__.py -> build/lib/apex/amp\n",
            "copying apex/amp/opt.py -> build/lib/apex/amp\n",
            "copying apex/amp/_amp_state.py -> build/lib/apex/amp\n",
            "copying apex/amp/_process_optimizer.py -> build/lib/apex/amp\n",
            "copying apex/amp/utils.py -> build/lib/apex/amp\n",
            "copying apex/amp/_initialize.py -> build/lib/apex/amp\n",
            "copying apex/amp/__version__.py -> build/lib/apex/amp\n",
            "copying apex/amp/handle.py -> build/lib/apex/amp\n",
            "copying apex/amp/rnn_compat.py -> build/lib/apex/amp\n",
            "copying apex/amp/frontend.py -> build/lib/apex/amp\n",
            "copying apex/amp/compat.py -> build/lib/apex/amp\n",
            "copying apex/amp/scaler.py -> build/lib/apex/amp\n",
            "copying apex/amp/amp.py -> build/lib/apex/amp\n",
            "copying apex/amp/wrap.py -> build/lib/apex/amp\n",
            "creating build/lib/apex/mlp\n",
            "copying apex/mlp/__init__.py -> build/lib/apex/mlp\n",
            "copying apex/mlp/mlp.py -> build/lib/apex/mlp\n",
            "creating build/lib/apex/optimizers\n",
            "copying apex/optimizers/__init__.py -> build/lib/apex/optimizers\n",
            "copying apex/optimizers/fused_adam.py -> build/lib/apex/optimizers\n",
            "copying apex/optimizers/fused_novograd.py -> build/lib/apex/optimizers\n",
            "copying apex/optimizers/fused_sgd.py -> build/lib/apex/optimizers\n",
            "copying apex/optimizers/fused_adagrad.py -> build/lib/apex/optimizers\n",
            "copying apex/optimizers/fused_lamb.py -> build/lib/apex/optimizers\n",
            "creating build/lib/apex/reparameterization\n",
            "copying apex/reparameterization/__init__.py -> build/lib/apex/reparameterization\n",
            "copying apex/reparameterization/reparameterization.py -> build/lib/apex/reparameterization\n",
            "copying apex/reparameterization/weight_norm.py -> build/lib/apex/reparameterization\n",
            "creating build/lib/apex/pyprof\n",
            "copying apex/pyprof/__init__.py -> build/lib/apex/pyprof\n",
            "creating build/lib/apex/fp16_utils\n",
            "copying apex/fp16_utils/__init__.py -> build/lib/apex/fp16_utils\n",
            "copying apex/fp16_utils/loss_scaler.py -> build/lib/apex/fp16_utils\n",
            "copying apex/fp16_utils/fp16util.py -> build/lib/apex/fp16_utils\n",
            "copying apex/fp16_utils/fp16_optimizer.py -> build/lib/apex/fp16_utils\n",
            "creating build/lib/apex/RNN\n",
            "copying apex/RNN/__init__.py -> build/lib/apex/RNN\n",
            "copying apex/RNN/RNNBackend.py -> build/lib/apex/RNN\n",
            "copying apex/RNN/models.py -> build/lib/apex/RNN\n",
            "copying apex/RNN/cells.py -> build/lib/apex/RNN\n",
            "creating build/lib/apex/multi_tensor_apply\n",
            "copying apex/multi_tensor_apply/__init__.py -> build/lib/apex/multi_tensor_apply\n",
            "copying apex/multi_tensor_apply/multi_tensor_apply.py -> build/lib/apex/multi_tensor_apply\n",
            "creating build/lib/apex/parallel\n",
            "copying apex/parallel/__init__.py -> build/lib/apex/parallel\n",
            "copying apex/parallel/multiproc.py -> build/lib/apex/parallel\n",
            "copying apex/parallel/optimized_sync_batchnorm.py -> build/lib/apex/parallel\n",
            "copying apex/parallel/sync_batchnorm_kernel.py -> build/lib/apex/parallel\n",
            "copying apex/parallel/sync_batchnorm.py -> build/lib/apex/parallel\n",
            "copying apex/parallel/optimized_sync_batchnorm_kernel.py -> build/lib/apex/parallel\n",
            "copying apex/parallel/LARC.py -> build/lib/apex/parallel\n",
            "copying apex/parallel/distributed.py -> build/lib/apex/parallel\n",
            "creating build/lib/apex/contrib/xentropy\n",
            "copying apex/contrib/xentropy/__init__.py -> build/lib/apex/contrib/xentropy\n",
            "copying apex/contrib/xentropy/softmax_xentropy.py -> build/lib/apex/contrib/xentropy\n",
            "creating build/lib/apex/contrib/groupbn\n",
            "copying apex/contrib/groupbn/__init__.py -> build/lib/apex/contrib/groupbn\n",
            "copying apex/contrib/groupbn/batch_norm.py -> build/lib/apex/contrib/groupbn\n",
            "creating build/lib/apex/contrib/optimizers\n",
            "copying apex/contrib/optimizers/__init__.py -> build/lib/apex/contrib/optimizers\n",
            "copying apex/contrib/optimizers/distributed_fused_lamb.py -> build/lib/apex/contrib/optimizers\n",
            "copying apex/contrib/optimizers/fused_adam.py -> build/lib/apex/contrib/optimizers\n",
            "copying apex/contrib/optimizers/distributed_fused_adam_v2.py -> build/lib/apex/contrib/optimizers\n",
            "copying apex/contrib/optimizers/distributed_fused_adam_v3.py -> build/lib/apex/contrib/optimizers\n",
            "copying apex/contrib/optimizers/distributed_fused_adam.py -> build/lib/apex/contrib/optimizers\n",
            "copying apex/contrib/optimizers/fused_sgd.py -> build/lib/apex/contrib/optimizers\n",
            "copying apex/contrib/optimizers/fused_lamb.py -> build/lib/apex/contrib/optimizers\n",
            "copying apex/contrib/optimizers/fp16_optimizer.py -> build/lib/apex/contrib/optimizers\n",
            "creating build/lib/apex/contrib/sparsity\n",
            "copying apex/contrib/sparsity/__init__.py -> build/lib/apex/contrib/sparsity\n",
            "copying apex/contrib/sparsity/asp.py -> build/lib/apex/contrib/sparsity\n",
            "copying apex/contrib/sparsity/sparse_masklib.py -> build/lib/apex/contrib/sparsity\n",
            "creating build/lib/apex/contrib/multihead_attn\n",
            "copying apex/contrib/multihead_attn/__init__.py -> build/lib/apex/contrib/multihead_attn\n",
            "copying apex/contrib/multihead_attn/encdec_multihead_attn_func.py -> build/lib/apex/contrib/multihead_attn\n",
            "copying apex/contrib/multihead_attn/fast_encdec_multihead_attn_norm_add_func.py -> build/lib/apex/contrib/multihead_attn\n",
            "copying apex/contrib/multihead_attn/fast_encdec_multihead_attn_func.py -> build/lib/apex/contrib/multihead_attn\n",
            "copying apex/contrib/multihead_attn/mask_softmax_dropout_func.py -> build/lib/apex/contrib/multihead_attn\n",
            "copying apex/contrib/multihead_attn/self_multihead_attn.py -> build/lib/apex/contrib/multihead_attn\n",
            "copying apex/contrib/multihead_attn/encdec_multihead_attn.py -> build/lib/apex/contrib/multihead_attn\n",
            "copying apex/contrib/multihead_attn/fast_self_multihead_attn_func.py -> build/lib/apex/contrib/multihead_attn\n",
            "copying apex/contrib/multihead_attn/self_multihead_attn_func.py -> build/lib/apex/contrib/multihead_attn\n",
            "copying apex/contrib/multihead_attn/fast_self_multihead_attn_norm_add_func.py -> build/lib/apex/contrib/multihead_attn\n",
            "creating build/lib/apex/amp/lists\n",
            "copying apex/amp/lists/__init__.py -> build/lib/apex/amp/lists\n",
            "copying apex/amp/lists/torch_overrides.py -> build/lib/apex/amp/lists\n",
            "copying apex/amp/lists/tensor_overrides.py -> build/lib/apex/amp/lists\n",
            "copying apex/amp/lists/functional_overrides.py -> build/lib/apex/amp/lists\n",
            "creating build/lib/apex/pyprof/prof\n",
            "copying apex/pyprof/prof/__init__.py -> build/lib/apex/pyprof/prof\n",
            "copying apex/pyprof/prof/utility.py -> build/lib/apex/pyprof/prof\n",
            "copying apex/pyprof/prof/output.py -> build/lib/apex/pyprof/prof\n",
            "copying apex/pyprof/prof/data.py -> build/lib/apex/pyprof/prof\n",
            "copying apex/pyprof/prof/pointwise.py -> build/lib/apex/pyprof/prof\n",
            "copying apex/pyprof/prof/embedding.py -> build/lib/apex/pyprof/prof\n",
            "copying apex/pyprof/prof/base.py -> build/lib/apex/pyprof/prof\n",
            "copying apex/pyprof/prof/index_slice_join_mutate.py -> build/lib/apex/pyprof/prof\n",
            "copying apex/pyprof/prof/optim.py -> build/lib/apex/pyprof/prof\n",
            "copying apex/pyprof/prof/usage.py -> build/lib/apex/pyprof/prof\n",
            "copying apex/pyprof/prof/loss.py -> build/lib/apex/pyprof/prof\n",
            "copying apex/pyprof/prof/conv.py -> build/lib/apex/pyprof/prof\n",
            "copying apex/pyprof/prof/softmax.py -> build/lib/apex/pyprof/prof\n",
            "copying apex/pyprof/prof/dropout.py -> build/lib/apex/pyprof/prof\n",
            "copying apex/pyprof/prof/misc.py -> build/lib/apex/pyprof/prof\n",
            "copying apex/pyprof/prof/linear.py -> build/lib/apex/pyprof/prof\n",
            "copying apex/pyprof/prof/pooling.py -> build/lib/apex/pyprof/prof\n",
            "copying apex/pyprof/prof/randomSample.py -> build/lib/apex/pyprof/prof\n",
            "copying apex/pyprof/prof/normalization.py -> build/lib/apex/pyprof/prof\n",
            "copying apex/pyprof/prof/blas.py -> build/lib/apex/pyprof/prof\n",
            "copying apex/pyprof/prof/convert.py -> build/lib/apex/pyprof/prof\n",
            "copying apex/pyprof/prof/activation.py -> build/lib/apex/pyprof/prof\n",
            "copying apex/pyprof/prof/__main__.py -> build/lib/apex/pyprof/prof\n",
            "copying apex/pyprof/prof/prof.py -> build/lib/apex/pyprof/prof\n",
            "copying apex/pyprof/prof/reduction.py -> build/lib/apex/pyprof/prof\n",
            "copying apex/pyprof/prof/recurrentCell.py -> build/lib/apex/pyprof/prof\n",
            "creating build/lib/apex/pyprof/nvtx\n",
            "copying apex/pyprof/nvtx/__init__.py -> build/lib/apex/pyprof/nvtx\n",
            "copying apex/pyprof/nvtx/nvmarker.py -> build/lib/apex/pyprof/nvtx\n",
            "creating build/lib/apex/pyprof/parse\n",
            "copying apex/pyprof/parse/__init__.py -> build/lib/apex/pyprof/parse\n",
            "copying apex/pyprof/parse/db.py -> build/lib/apex/pyprof/parse\n",
            "copying apex/pyprof/parse/kernel.py -> build/lib/apex/pyprof/parse\n",
            "copying apex/pyprof/parse/nvvp.py -> build/lib/apex/pyprof/parse\n",
            "copying apex/pyprof/parse/__main__.py -> build/lib/apex/pyprof/parse\n",
            "copying apex/pyprof/parse/parse.py -> build/lib/apex/pyprof/parse\n",
            "creating build/bdist.linux-x86_64\n",
            "creating build/bdist.linux-x86_64/egg\n",
            "creating build/bdist.linux-x86_64/egg/apex\n",
            "copying build/lib/apex/__init__.py -> build/bdist.linux-x86_64/egg/apex\n",
            "creating build/bdist.linux-x86_64/egg/apex/normalization\n",
            "copying build/lib/apex/normalization/__init__.py -> build/bdist.linux-x86_64/egg/apex/normalization\n",
            "copying build/lib/apex/normalization/fused_layer_norm.py -> build/bdist.linux-x86_64/egg/apex/normalization\n",
            "creating build/bdist.linux-x86_64/egg/apex/contrib\n",
            "copying build/lib/apex/contrib/__init__.py -> build/bdist.linux-x86_64/egg/apex/contrib\n",
            "creating build/bdist.linux-x86_64/egg/apex/contrib/xentropy\n",
            "copying build/lib/apex/contrib/xentropy/__init__.py -> build/bdist.linux-x86_64/egg/apex/contrib/xentropy\n",
            "copying build/lib/apex/contrib/xentropy/softmax_xentropy.py -> build/bdist.linux-x86_64/egg/apex/contrib/xentropy\n",
            "creating build/bdist.linux-x86_64/egg/apex/contrib/groupbn\n",
            "copying build/lib/apex/contrib/groupbn/__init__.py -> build/bdist.linux-x86_64/egg/apex/contrib/groupbn\n",
            "copying build/lib/apex/contrib/groupbn/batch_norm.py -> build/bdist.linux-x86_64/egg/apex/contrib/groupbn\n",
            "creating build/bdist.linux-x86_64/egg/apex/contrib/optimizers\n",
            "copying build/lib/apex/contrib/optimizers/__init__.py -> build/bdist.linux-x86_64/egg/apex/contrib/optimizers\n",
            "copying build/lib/apex/contrib/optimizers/distributed_fused_lamb.py -> build/bdist.linux-x86_64/egg/apex/contrib/optimizers\n",
            "copying build/lib/apex/contrib/optimizers/fused_adam.py -> build/bdist.linux-x86_64/egg/apex/contrib/optimizers\n",
            "copying build/lib/apex/contrib/optimizers/distributed_fused_adam_v2.py -> build/bdist.linux-x86_64/egg/apex/contrib/optimizers\n",
            "copying build/lib/apex/contrib/optimizers/distributed_fused_adam_v3.py -> build/bdist.linux-x86_64/egg/apex/contrib/optimizers\n",
            "copying build/lib/apex/contrib/optimizers/distributed_fused_adam.py -> build/bdist.linux-x86_64/egg/apex/contrib/optimizers\n",
            "copying build/lib/apex/contrib/optimizers/fused_sgd.py -> build/bdist.linux-x86_64/egg/apex/contrib/optimizers\n",
            "copying build/lib/apex/contrib/optimizers/fused_lamb.py -> build/bdist.linux-x86_64/egg/apex/contrib/optimizers\n",
            "copying build/lib/apex/contrib/optimizers/fp16_optimizer.py -> build/bdist.linux-x86_64/egg/apex/contrib/optimizers\n",
            "creating build/bdist.linux-x86_64/egg/apex/contrib/sparsity\n",
            "copying build/lib/apex/contrib/sparsity/__init__.py -> build/bdist.linux-x86_64/egg/apex/contrib/sparsity\n",
            "copying build/lib/apex/contrib/sparsity/asp.py -> build/bdist.linux-x86_64/egg/apex/contrib/sparsity\n",
            "copying build/lib/apex/contrib/sparsity/sparse_masklib.py -> build/bdist.linux-x86_64/egg/apex/contrib/sparsity\n",
            "creating build/bdist.linux-x86_64/egg/apex/contrib/multihead_attn\n",
            "copying build/lib/apex/contrib/multihead_attn/__init__.py -> build/bdist.linux-x86_64/egg/apex/contrib/multihead_attn\n",
            "copying build/lib/apex/contrib/multihead_attn/encdec_multihead_attn_func.py -> build/bdist.linux-x86_64/egg/apex/contrib/multihead_attn\n",
            "copying build/lib/apex/contrib/multihead_attn/fast_encdec_multihead_attn_norm_add_func.py -> build/bdist.linux-x86_64/egg/apex/contrib/multihead_attn\n",
            "copying build/lib/apex/contrib/multihead_attn/fast_encdec_multihead_attn_func.py -> build/bdist.linux-x86_64/egg/apex/contrib/multihead_attn\n",
            "copying build/lib/apex/contrib/multihead_attn/mask_softmax_dropout_func.py -> build/bdist.linux-x86_64/egg/apex/contrib/multihead_attn\n",
            "copying build/lib/apex/contrib/multihead_attn/self_multihead_attn.py -> build/bdist.linux-x86_64/egg/apex/contrib/multihead_attn\n",
            "copying build/lib/apex/contrib/multihead_attn/encdec_multihead_attn.py -> build/bdist.linux-x86_64/egg/apex/contrib/multihead_attn\n",
            "copying build/lib/apex/contrib/multihead_attn/fast_self_multihead_attn_func.py -> build/bdist.linux-x86_64/egg/apex/contrib/multihead_attn\n",
            "copying build/lib/apex/contrib/multihead_attn/self_multihead_attn_func.py -> build/bdist.linux-x86_64/egg/apex/contrib/multihead_attn\n",
            "copying build/lib/apex/contrib/multihead_attn/fast_self_multihead_attn_norm_add_func.py -> build/bdist.linux-x86_64/egg/apex/contrib/multihead_attn\n",
            "creating build/bdist.linux-x86_64/egg/apex/amp\n",
            "copying build/lib/apex/amp/__init__.py -> build/bdist.linux-x86_64/egg/apex/amp\n",
            "creating build/bdist.linux-x86_64/egg/apex/amp/lists\n",
            "copying build/lib/apex/amp/lists/__init__.py -> build/bdist.linux-x86_64/egg/apex/amp/lists\n",
            "copying build/lib/apex/amp/lists/torch_overrides.py -> build/bdist.linux-x86_64/egg/apex/amp/lists\n",
            "copying build/lib/apex/amp/lists/tensor_overrides.py -> build/bdist.linux-x86_64/egg/apex/amp/lists\n",
            "copying build/lib/apex/amp/lists/functional_overrides.py -> build/bdist.linux-x86_64/egg/apex/amp/lists\n",
            "copying build/lib/apex/amp/opt.py -> build/bdist.linux-x86_64/egg/apex/amp\n",
            "copying build/lib/apex/amp/_amp_state.py -> build/bdist.linux-x86_64/egg/apex/amp\n",
            "copying build/lib/apex/amp/_process_optimizer.py -> build/bdist.linux-x86_64/egg/apex/amp\n",
            "copying build/lib/apex/amp/utils.py -> build/bdist.linux-x86_64/egg/apex/amp\n",
            "copying build/lib/apex/amp/_initialize.py -> build/bdist.linux-x86_64/egg/apex/amp\n",
            "copying build/lib/apex/amp/__version__.py -> build/bdist.linux-x86_64/egg/apex/amp\n",
            "copying build/lib/apex/amp/handle.py -> build/bdist.linux-x86_64/egg/apex/amp\n",
            "copying build/lib/apex/amp/rnn_compat.py -> build/bdist.linux-x86_64/egg/apex/amp\n",
            "copying build/lib/apex/amp/frontend.py -> build/bdist.linux-x86_64/egg/apex/amp\n",
            "copying build/lib/apex/amp/compat.py -> build/bdist.linux-x86_64/egg/apex/amp\n",
            "copying build/lib/apex/amp/scaler.py -> build/bdist.linux-x86_64/egg/apex/amp\n",
            "copying build/lib/apex/amp/amp.py -> build/bdist.linux-x86_64/egg/apex/amp\n",
            "copying build/lib/apex/amp/wrap.py -> build/bdist.linux-x86_64/egg/apex/amp\n",
            "creating build/bdist.linux-x86_64/egg/apex/mlp\n",
            "copying build/lib/apex/mlp/__init__.py -> build/bdist.linux-x86_64/egg/apex/mlp\n",
            "copying build/lib/apex/mlp/mlp.py -> build/bdist.linux-x86_64/egg/apex/mlp\n",
            "creating build/bdist.linux-x86_64/egg/apex/optimizers\n",
            "copying build/lib/apex/optimizers/__init__.py -> build/bdist.linux-x86_64/egg/apex/optimizers\n",
            "copying build/lib/apex/optimizers/fused_adam.py -> build/bdist.linux-x86_64/egg/apex/optimizers\n",
            "copying build/lib/apex/optimizers/fused_novograd.py -> build/bdist.linux-x86_64/egg/apex/optimizers\n",
            "copying build/lib/apex/optimizers/fused_sgd.py -> build/bdist.linux-x86_64/egg/apex/optimizers\n",
            "copying build/lib/apex/optimizers/fused_adagrad.py -> build/bdist.linux-x86_64/egg/apex/optimizers\n",
            "copying build/lib/apex/optimizers/fused_lamb.py -> build/bdist.linux-x86_64/egg/apex/optimizers\n",
            "creating build/bdist.linux-x86_64/egg/apex/reparameterization\n",
            "copying build/lib/apex/reparameterization/__init__.py -> build/bdist.linux-x86_64/egg/apex/reparameterization\n",
            "copying build/lib/apex/reparameterization/reparameterization.py -> build/bdist.linux-x86_64/egg/apex/reparameterization\n",
            "copying build/lib/apex/reparameterization/weight_norm.py -> build/bdist.linux-x86_64/egg/apex/reparameterization\n",
            "creating build/bdist.linux-x86_64/egg/apex/pyprof\n",
            "copying build/lib/apex/pyprof/__init__.py -> build/bdist.linux-x86_64/egg/apex/pyprof\n",
            "creating build/bdist.linux-x86_64/egg/apex/pyprof/prof\n",
            "copying build/lib/apex/pyprof/prof/__init__.py -> build/bdist.linux-x86_64/egg/apex/pyprof/prof\n",
            "copying build/lib/apex/pyprof/prof/utility.py -> build/bdist.linux-x86_64/egg/apex/pyprof/prof\n",
            "copying build/lib/apex/pyprof/prof/output.py -> build/bdist.linux-x86_64/egg/apex/pyprof/prof\n",
            "copying build/lib/apex/pyprof/prof/data.py -> build/bdist.linux-x86_64/egg/apex/pyprof/prof\n",
            "copying build/lib/apex/pyprof/prof/pointwise.py -> build/bdist.linux-x86_64/egg/apex/pyprof/prof\n",
            "copying build/lib/apex/pyprof/prof/embedding.py -> build/bdist.linux-x86_64/egg/apex/pyprof/prof\n",
            "copying build/lib/apex/pyprof/prof/base.py -> build/bdist.linux-x86_64/egg/apex/pyprof/prof\n",
            "copying build/lib/apex/pyprof/prof/index_slice_join_mutate.py -> build/bdist.linux-x86_64/egg/apex/pyprof/prof\n",
            "copying build/lib/apex/pyprof/prof/optim.py -> build/bdist.linux-x86_64/egg/apex/pyprof/prof\n",
            "copying build/lib/apex/pyprof/prof/usage.py -> build/bdist.linux-x86_64/egg/apex/pyprof/prof\n",
            "copying build/lib/apex/pyprof/prof/loss.py -> build/bdist.linux-x86_64/egg/apex/pyprof/prof\n",
            "copying build/lib/apex/pyprof/prof/conv.py -> build/bdist.linux-x86_64/egg/apex/pyprof/prof\n",
            "copying build/lib/apex/pyprof/prof/softmax.py -> build/bdist.linux-x86_64/egg/apex/pyprof/prof\n",
            "copying build/lib/apex/pyprof/prof/dropout.py -> build/bdist.linux-x86_64/egg/apex/pyprof/prof\n",
            "copying build/lib/apex/pyprof/prof/misc.py -> build/bdist.linux-x86_64/egg/apex/pyprof/prof\n",
            "copying build/lib/apex/pyprof/prof/linear.py -> build/bdist.linux-x86_64/egg/apex/pyprof/prof\n",
            "copying build/lib/apex/pyprof/prof/pooling.py -> build/bdist.linux-x86_64/egg/apex/pyprof/prof\n",
            "copying build/lib/apex/pyprof/prof/randomSample.py -> build/bdist.linux-x86_64/egg/apex/pyprof/prof\n",
            "copying build/lib/apex/pyprof/prof/normalization.py -> build/bdist.linux-x86_64/egg/apex/pyprof/prof\n",
            "copying build/lib/apex/pyprof/prof/blas.py -> build/bdist.linux-x86_64/egg/apex/pyprof/prof\n",
            "copying build/lib/apex/pyprof/prof/convert.py -> build/bdist.linux-x86_64/egg/apex/pyprof/prof\n",
            "copying build/lib/apex/pyprof/prof/activation.py -> build/bdist.linux-x86_64/egg/apex/pyprof/prof\n",
            "copying build/lib/apex/pyprof/prof/__main__.py -> build/bdist.linux-x86_64/egg/apex/pyprof/prof\n",
            "copying build/lib/apex/pyprof/prof/prof.py -> build/bdist.linux-x86_64/egg/apex/pyprof/prof\n",
            "copying build/lib/apex/pyprof/prof/reduction.py -> build/bdist.linux-x86_64/egg/apex/pyprof/prof\n",
            "copying build/lib/apex/pyprof/prof/recurrentCell.py -> build/bdist.linux-x86_64/egg/apex/pyprof/prof\n",
            "creating build/bdist.linux-x86_64/egg/apex/pyprof/nvtx\n",
            "copying build/lib/apex/pyprof/nvtx/__init__.py -> build/bdist.linux-x86_64/egg/apex/pyprof/nvtx\n",
            "copying build/lib/apex/pyprof/nvtx/nvmarker.py -> build/bdist.linux-x86_64/egg/apex/pyprof/nvtx\n",
            "creating build/bdist.linux-x86_64/egg/apex/pyprof/parse\n",
            "copying build/lib/apex/pyprof/parse/__init__.py -> build/bdist.linux-x86_64/egg/apex/pyprof/parse\n",
            "copying build/lib/apex/pyprof/parse/db.py -> build/bdist.linux-x86_64/egg/apex/pyprof/parse\n",
            "copying build/lib/apex/pyprof/parse/kernel.py -> build/bdist.linux-x86_64/egg/apex/pyprof/parse\n",
            "copying build/lib/apex/pyprof/parse/nvvp.py -> build/bdist.linux-x86_64/egg/apex/pyprof/parse\n",
            "copying build/lib/apex/pyprof/parse/__main__.py -> build/bdist.linux-x86_64/egg/apex/pyprof/parse\n",
            "copying build/lib/apex/pyprof/parse/parse.py -> build/bdist.linux-x86_64/egg/apex/pyprof/parse\n",
            "creating build/bdist.linux-x86_64/egg/apex/fp16_utils\n",
            "copying build/lib/apex/fp16_utils/__init__.py -> build/bdist.linux-x86_64/egg/apex/fp16_utils\n",
            "copying build/lib/apex/fp16_utils/loss_scaler.py -> build/bdist.linux-x86_64/egg/apex/fp16_utils\n",
            "copying build/lib/apex/fp16_utils/fp16util.py -> build/bdist.linux-x86_64/egg/apex/fp16_utils\n",
            "copying build/lib/apex/fp16_utils/fp16_optimizer.py -> build/bdist.linux-x86_64/egg/apex/fp16_utils\n",
            "creating build/bdist.linux-x86_64/egg/apex/RNN\n",
            "copying build/lib/apex/RNN/__init__.py -> build/bdist.linux-x86_64/egg/apex/RNN\n",
            "copying build/lib/apex/RNN/RNNBackend.py -> build/bdist.linux-x86_64/egg/apex/RNN\n",
            "copying build/lib/apex/RNN/models.py -> build/bdist.linux-x86_64/egg/apex/RNN\n",
            "copying build/lib/apex/RNN/cells.py -> build/bdist.linux-x86_64/egg/apex/RNN\n",
            "creating build/bdist.linux-x86_64/egg/apex/multi_tensor_apply\n",
            "copying build/lib/apex/multi_tensor_apply/__init__.py -> build/bdist.linux-x86_64/egg/apex/multi_tensor_apply\n",
            "copying build/lib/apex/multi_tensor_apply/multi_tensor_apply.py -> build/bdist.linux-x86_64/egg/apex/multi_tensor_apply\n",
            "creating build/bdist.linux-x86_64/egg/apex/parallel\n",
            "copying build/lib/apex/parallel/__init__.py -> build/bdist.linux-x86_64/egg/apex/parallel\n",
            "copying build/lib/apex/parallel/multiproc.py -> build/bdist.linux-x86_64/egg/apex/parallel\n",
            "copying build/lib/apex/parallel/optimized_sync_batchnorm.py -> build/bdist.linux-x86_64/egg/apex/parallel\n",
            "copying build/lib/apex/parallel/sync_batchnorm_kernel.py -> build/bdist.linux-x86_64/egg/apex/parallel\n",
            "copying build/lib/apex/parallel/sync_batchnorm.py -> build/bdist.linux-x86_64/egg/apex/parallel\n",
            "copying build/lib/apex/parallel/optimized_sync_batchnorm_kernel.py -> build/bdist.linux-x86_64/egg/apex/parallel\n",
            "copying build/lib/apex/parallel/LARC.py -> build/bdist.linux-x86_64/egg/apex/parallel\n",
            "copying build/lib/apex/parallel/distributed.py -> build/bdist.linux-x86_64/egg/apex/parallel\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/__init__.py to __init__.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/normalization/__init__.py to __init__.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/normalization/fused_layer_norm.py to fused_layer_norm.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/contrib/__init__.py to __init__.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/contrib/xentropy/__init__.py to __init__.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/contrib/xentropy/softmax_xentropy.py to softmax_xentropy.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/contrib/groupbn/__init__.py to __init__.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/contrib/groupbn/batch_norm.py to batch_norm.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/contrib/optimizers/__init__.py to __init__.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/contrib/optimizers/distributed_fused_lamb.py to distributed_fused_lamb.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/contrib/optimizers/fused_adam.py to fused_adam.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/contrib/optimizers/distributed_fused_adam_v2.py to distributed_fused_adam_v2.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/contrib/optimizers/distributed_fused_adam_v3.py to distributed_fused_adam_v3.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/contrib/optimizers/distributed_fused_adam.py to distributed_fused_adam.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/contrib/optimizers/fused_sgd.py to fused_sgd.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/contrib/optimizers/fused_lamb.py to fused_lamb.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/contrib/optimizers/fp16_optimizer.py to fp16_optimizer.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/contrib/sparsity/__init__.py to __init__.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/contrib/sparsity/asp.py to asp.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/contrib/sparsity/sparse_masklib.py to sparse_masklib.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/contrib/multihead_attn/__init__.py to __init__.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/contrib/multihead_attn/encdec_multihead_attn_func.py to encdec_multihead_attn_func.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/contrib/multihead_attn/fast_encdec_multihead_attn_norm_add_func.py to fast_encdec_multihead_attn_norm_add_func.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/contrib/multihead_attn/fast_encdec_multihead_attn_func.py to fast_encdec_multihead_attn_func.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/contrib/multihead_attn/mask_softmax_dropout_func.py to mask_softmax_dropout_func.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/contrib/multihead_attn/self_multihead_attn.py to self_multihead_attn.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/contrib/multihead_attn/encdec_multihead_attn.py to encdec_multihead_attn.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/contrib/multihead_attn/fast_self_multihead_attn_func.py to fast_self_multihead_attn_func.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/contrib/multihead_attn/self_multihead_attn_func.py to self_multihead_attn_func.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/contrib/multihead_attn/fast_self_multihead_attn_norm_add_func.py to fast_self_multihead_attn_norm_add_func.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/amp/__init__.py to __init__.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/amp/lists/__init__.py to __init__.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/amp/lists/torch_overrides.py to torch_overrides.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/amp/lists/tensor_overrides.py to tensor_overrides.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/amp/lists/functional_overrides.py to functional_overrides.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/amp/opt.py to opt.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/amp/_amp_state.py to _amp_state.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/amp/_process_optimizer.py to _process_optimizer.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/amp/utils.py to utils.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/amp/_initialize.py to _initialize.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/amp/__version__.py to __version__.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/amp/handle.py to handle.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/amp/rnn_compat.py to rnn_compat.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/amp/frontend.py to frontend.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/amp/compat.py to compat.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/amp/scaler.py to scaler.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/amp/amp.py to amp.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/amp/wrap.py to wrap.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/mlp/__init__.py to __init__.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/mlp/mlp.py to mlp.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/optimizers/__init__.py to __init__.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/optimizers/fused_adam.py to fused_adam.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/optimizers/fused_novograd.py to fused_novograd.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/optimizers/fused_sgd.py to fused_sgd.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/optimizers/fused_adagrad.py to fused_adagrad.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/optimizers/fused_lamb.py to fused_lamb.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/reparameterization/__init__.py to __init__.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/reparameterization/reparameterization.py to reparameterization.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/reparameterization/weight_norm.py to weight_norm.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/pyprof/__init__.py to __init__.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/pyprof/prof/__init__.py to __init__.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/pyprof/prof/utility.py to utility.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/pyprof/prof/output.py to output.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/pyprof/prof/data.py to data.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/pyprof/prof/pointwise.py to pointwise.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/pyprof/prof/embedding.py to embedding.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/pyprof/prof/base.py to base.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/pyprof/prof/index_slice_join_mutate.py to index_slice_join_mutate.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/pyprof/prof/optim.py to optim.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/pyprof/prof/usage.py to usage.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/pyprof/prof/loss.py to loss.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/pyprof/prof/conv.py to conv.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/pyprof/prof/softmax.py to softmax.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/pyprof/prof/dropout.py to dropout.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/pyprof/prof/misc.py to misc.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/pyprof/prof/linear.py to linear.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/pyprof/prof/pooling.py to pooling.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/pyprof/prof/randomSample.py to randomSample.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/pyprof/prof/normalization.py to normalization.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/pyprof/prof/blas.py to blas.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/pyprof/prof/convert.py to convert.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/pyprof/prof/activation.py to activation.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/pyprof/prof/__main__.py to __main__.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/pyprof/prof/prof.py to prof.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/pyprof/prof/reduction.py to reduction.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/pyprof/prof/recurrentCell.py to recurrentCell.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/pyprof/nvtx/__init__.py to __init__.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/pyprof/nvtx/nvmarker.py to nvmarker.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/pyprof/parse/__init__.py to __init__.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/pyprof/parse/db.py to db.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/pyprof/parse/kernel.py to kernel.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/pyprof/parse/nvvp.py to nvvp.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/pyprof/parse/__main__.py to __main__.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/pyprof/parse/parse.py to parse.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/fp16_utils/__init__.py to __init__.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/fp16_utils/loss_scaler.py to loss_scaler.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/fp16_utils/fp16util.py to fp16util.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/fp16_utils/fp16_optimizer.py to fp16_optimizer.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/RNN/__init__.py to __init__.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/RNN/RNNBackend.py to RNNBackend.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/RNN/models.py to models.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/RNN/cells.py to cells.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/multi_tensor_apply/__init__.py to __init__.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/multi_tensor_apply/multi_tensor_apply.py to multi_tensor_apply.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/parallel/__init__.py to __init__.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/parallel/multiproc.py to multiproc.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/parallel/optimized_sync_batchnorm.py to optimized_sync_batchnorm.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/parallel/sync_batchnorm_kernel.py to sync_batchnorm_kernel.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/parallel/sync_batchnorm.py to sync_batchnorm.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/parallel/optimized_sync_batchnorm_kernel.py to optimized_sync_batchnorm_kernel.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/parallel/LARC.py to LARC.cpython-36.pyc\n",
            "byte-compiling build/bdist.linux-x86_64/egg/apex/parallel/distributed.py to distributed.cpython-36.pyc\n",
            "creating build/bdist.linux-x86_64/egg/EGG-INFO\n",
            "copying apex.egg-info/PKG-INFO -> build/bdist.linux-x86_64/egg/EGG-INFO\n",
            "copying apex.egg-info/SOURCES.txt -> build/bdist.linux-x86_64/egg/EGG-INFO\n",
            "copying apex.egg-info/dependency_links.txt -> build/bdist.linux-x86_64/egg/EGG-INFO\n",
            "copying apex.egg-info/top_level.txt -> build/bdist.linux-x86_64/egg/EGG-INFO\n",
            "creating dist\n",
            "creating 'dist/apex-0.1-py3.6.egg' and adding 'build/bdist.linux-x86_64/egg' to it\n",
            "removing 'build/bdist.linux-x86_64/egg' (and everything under it)\n",
            "Processing apex-0.1-py3.6.egg\n",
            "creating /usr/local/lib/python3.6/dist-packages/apex-0.1-py3.6.egg\n",
            "Extracting apex-0.1-py3.6.egg to /usr/local/lib/python3.6/dist-packages\n",
            "Adding apex 0.1 to easy-install.pth file\n",
            "\n",
            "Installed /usr/local/lib/python3.6/dist-packages/apex-0.1-py3.6.egg\n",
            "Processing dependencies for apex==0.1\n",
            "Finished processing dependencies for apex==0.1\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "stream",
          "text": [
            "WARNING: Skipping apex as it is not installed.\n",
            "Cloning into 'apex'...\n",
            "warning: redirecting to https://github.com/nvidia/apex.git/\n",
            "setup.py:67: UserWarning: Option --pyprof not specified. Not installing PyProf dependencies!\n",
            "  warnings.warn(\"Option --pyprof not specified. Not installing PyProf dependencies!\")\n",
            "zip_safe flag not set; analyzing archive contents...\n",
            "apex.pyprof.nvtx.__pycache__.nvmarker.cpython-36: module references __file__\n",
            "apex.pyprof.nvtx.__pycache__.nvmarker.cpython-36: module references __path__\n"
          ],
          "name": "stderr"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "NCNHoekMbmRh",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 122
        },
        "outputId": "fe757491-c2ae-4b29-9055-d5ae5a78acd8"
      },
      "source": [
        "!pip install yacs"
      ],
      "execution_count": 5,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Collecting yacs\n",
            "  Downloading https://files.pythonhosted.org/packages/38/4f/fe9a4d472aa867878ce3bb7efb16654c5d63672b86dc0e6e953a67018433/yacs-0.1.8-py3-none-any.whl\n",
            "Requirement already satisfied: PyYAML in /usr/local/lib/python3.6/dist-packages (from yacs) (3.13)\n",
            "Installing collected packages: yacs\n",
            "Successfully installed yacs-0.1.8\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "cqIjdgsj36mh",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "!mv '/content/realtime_panoptic/realtime_panoptic' '/usr/local/lib/python3.6/dist-packages'"
      ],
      "execution_count": 6,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "H4wER3oGjsaR",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "# This script provides a demo inference a model trained on Cityscapes dataset.\n",
        "import warnings\n",
        "import argparse\n",
        "import torch\n",
        "import numpy as np\n",
        "from PIL import Image\n",
        "from torchvision.models.detection.image_list import ImageList\n",
        "\n",
        "from realtime_panoptic.models.rt_pano_net import RTPanoNet\n",
        "from realtime_panoptic.config import cfg\n",
        "import realtime_panoptic.data.panoptic_transform as P\n",
        "from realtime_panoptic.utils.visualization import visualize_segmentation_image,visualize_detection_image"
      ],
      "execution_count": 7,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "xOG8xOeiiSAS",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "cityscapes_colormap = np.array([\n",
        " [128,  64, 128],\n",
        " [244,  35, 232],\n",
        " [ 70,  70,  70],\n",
        " [102, 102, 156],\n",
        " [190, 153, 153],\n",
        " [153, 153, 153],\n",
        " [250 ,170,  30],\n",
        " [220, 220,   0],\n",
        " [107, 142,  35],\n",
        " [152, 251, 152],\n",
        " [ 70, 130, 180],\n",
        " [220,  20,  60],\n",
        " [255,   0,   0],\n",
        " [  0,   0, 142],\n",
        " [  0,   0,  70],\n",
        " [  0,  60, 100],\n",
        " [  0,  80, 100],\n",
        " [  0,   0, 230],\n",
        " [119,  11,  32],\n",
        " [  0,   0,   0]])\n",
        "\n",
        "cityscapes_instance_label_name = ['person', 'rider', 'car', 'truck', 'bus', 'train', 'motorcycle', 'bicycle']\n",
        "warnings.filterwarnings(\"ignore\", category=UserWarning)"
      ],
      "execution_count": 8,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "dFJGwLwTisjq",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "cfg.merge_from_file('/content/realtime_panoptic/configs/demo_config.yaml')"
      ],
      "execution_count": 9,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "bb8dM3xejMVd",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 35
        },
        "outputId": "8f1cadc9-b331-4df5-80eb-a05dfdf56130"
      },
      "source": [
        "cfg.model.backbone"
      ],
      "execution_count": 10,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "string"
            },
            "text/plain": [
              "'R-50-FPN-RETINANET'"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 10
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "fQaFWiyQjHjL",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1000
        },
        "outputId": "c4b0d6a8-c603-4384-a9a2-7545160a52d4"
      },
      "source": [
        "model = RTPanoNet(\n",
        "    backbone=cfg.model.backbone, \n",
        "    num_classes=cfg.model.panoptic.num_classes,\n",
        "    things_num_classes=cfg.model.panoptic.num_thing_classes,\n",
        "    pre_nms_thresh=cfg.model.panoptic.pre_nms_thresh,\n",
        "    pre_nms_top_n=cfg.model.panoptic.pre_nms_top_n,\n",
        "    nms_thresh=cfg.model.panoptic.nms_thresh,\n",
        "    fpn_post_nms_top_n=cfg.model.panoptic.fpn_post_nms_top_n,\n",
        "    instance_id_range=cfg.model.panoptic.instance_id_range)\n",
        "device = 'cuda'\n",
        "model.to(device)"
      ],
      "execution_count": 11,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "RTPanoNet(\n",
              "  (backbone): ResNetWithModifiedFPN(\n",
              "    (body): IntermediateLayerGetter(\n",
              "      (conv1): Conv2d(3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False)\n",
              "      (bn1): FrozenBatchNorm2d(64)\n",
              "      (relu): ReLU(inplace=True)\n",
              "      (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n",
              "      (layer1): Sequential(\n",
              "        (0): Bottleneck(\n",
              "          (conv1): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
              "          (bn1): FrozenBatchNorm2d(64)\n",
              "          (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
              "          (bn2): FrozenBatchNorm2d(64)\n",
              "          (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
              "          (bn3): FrozenBatchNorm2d(256)\n",
              "          (relu): ReLU(inplace=True)\n",
              "          (downsample): Sequential(\n",
              "            (0): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
              "            (1): FrozenBatchNorm2d(256)\n",
              "          )\n",
              "        )\n",
              "        (1): Bottleneck(\n",
              "          (conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
              "          (bn1): FrozenBatchNorm2d(64)\n",
              "          (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
              "          (bn2): FrozenBatchNorm2d(64)\n",
              "          (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
              "          (bn3): FrozenBatchNorm2d(256)\n",
              "          (relu): ReLU(inplace=True)\n",
              "        )\n",
              "        (2): Bottleneck(\n",
              "          (conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
              "          (bn1): FrozenBatchNorm2d(64)\n",
              "          (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
              "          (bn2): FrozenBatchNorm2d(64)\n",
              "          (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
              "          (bn3): FrozenBatchNorm2d(256)\n",
              "          (relu): ReLU(inplace=True)\n",
              "        )\n",
              "      )\n",
              "      (layer2): Sequential(\n",
              "        (0): Bottleneck(\n",
              "          (conv1): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
              "          (bn1): FrozenBatchNorm2d(128)\n",
              "          (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n",
              "          (bn2): FrozenBatchNorm2d(128)\n",
              "          (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
              "          (bn3): FrozenBatchNorm2d(512)\n",
              "          (relu): ReLU(inplace=True)\n",
              "          (downsample): Sequential(\n",
              "            (0): Conv2d(256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False)\n",
              "            (1): FrozenBatchNorm2d(512)\n",
              "          )\n",
              "        )\n",
              "        (1): Bottleneck(\n",
              "          (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
              "          (bn1): FrozenBatchNorm2d(128)\n",
              "          (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
              "          (bn2): FrozenBatchNorm2d(128)\n",
              "          (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
              "          (bn3): FrozenBatchNorm2d(512)\n",
              "          (relu): ReLU(inplace=True)\n",
              "        )\n",
              "        (2): Bottleneck(\n",
              "          (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
              "          (bn1): FrozenBatchNorm2d(128)\n",
              "          (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
              "          (bn2): FrozenBatchNorm2d(128)\n",
              "          (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
              "          (bn3): FrozenBatchNorm2d(512)\n",
              "          (relu): ReLU(inplace=True)\n",
              "        )\n",
              "        (3): Bottleneck(\n",
              "          (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
              "          (bn1): FrozenBatchNorm2d(128)\n",
              "          (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
              "          (bn2): FrozenBatchNorm2d(128)\n",
              "          (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
              "          (bn3): FrozenBatchNorm2d(512)\n",
              "          (relu): ReLU(inplace=True)\n",
              "        )\n",
              "      )\n",
              "      (layer3): Sequential(\n",
              "        (0): Bottleneck(\n",
              "          (conv1): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
              "          (bn1): FrozenBatchNorm2d(256)\n",
              "          (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n",
              "          (bn2): FrozenBatchNorm2d(256)\n",
              "          (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
              "          (bn3): FrozenBatchNorm2d(1024)\n",
              "          (relu): ReLU(inplace=True)\n",
              "          (downsample): Sequential(\n",
              "            (0): Conv2d(512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False)\n",
              "            (1): FrozenBatchNorm2d(1024)\n",
              "          )\n",
              "        )\n",
              "        (1): Bottleneck(\n",
              "          (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
              "          (bn1): FrozenBatchNorm2d(256)\n",
              "          (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
              "          (bn2): FrozenBatchNorm2d(256)\n",
              "          (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
              "          (bn3): FrozenBatchNorm2d(1024)\n",
              "          (relu): ReLU(inplace=True)\n",
              "        )\n",
              "        (2): Bottleneck(\n",
              "          (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
              "          (bn1): FrozenBatchNorm2d(256)\n",
              "          (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
              "          (bn2): FrozenBatchNorm2d(256)\n",
              "          (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
              "          (bn3): FrozenBatchNorm2d(1024)\n",
              "          (relu): ReLU(inplace=True)\n",
              "        )\n",
              "        (3): Bottleneck(\n",
              "          (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
              "          (bn1): FrozenBatchNorm2d(256)\n",
              "          (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
              "          (bn2): FrozenBatchNorm2d(256)\n",
              "          (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
              "          (bn3): FrozenBatchNorm2d(1024)\n",
              "          (relu): ReLU(inplace=True)\n",
              "        )\n",
              "        (4): Bottleneck(\n",
              "          (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
              "          (bn1): FrozenBatchNorm2d(256)\n",
              "          (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
              "          (bn2): FrozenBatchNorm2d(256)\n",
              "          (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
              "          (bn3): FrozenBatchNorm2d(1024)\n",
              "          (relu): ReLU(inplace=True)\n",
              "        )\n",
              "        (5): Bottleneck(\n",
              "          (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
              "          (bn1): FrozenBatchNorm2d(256)\n",
              "          (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
              "          (bn2): FrozenBatchNorm2d(256)\n",
              "          (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
              "          (bn3): FrozenBatchNorm2d(1024)\n",
              "          (relu): ReLU(inplace=True)\n",
              "        )\n",
              "      )\n",
              "      (layer4): Sequential(\n",
              "        (0): Bottleneck(\n",
              "          (conv1): Conv2d(1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
              "          (bn1): FrozenBatchNorm2d(512)\n",
              "          (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n",
              "          (bn2): FrozenBatchNorm2d(512)\n",
              "          (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
              "          (bn3): FrozenBatchNorm2d(2048)\n",
              "          (relu): ReLU(inplace=True)\n",
              "          (downsample): Sequential(\n",
              "            (0): Conv2d(1024, 2048, kernel_size=(1, 1), stride=(2, 2), bias=False)\n",
              "            (1): FrozenBatchNorm2d(2048)\n",
              "          )\n",
              "        )\n",
              "        (1): Bottleneck(\n",
              "          (conv1): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
              "          (bn1): FrozenBatchNorm2d(512)\n",
              "          (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
              "          (bn2): FrozenBatchNorm2d(512)\n",
              "          (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
              "          (bn3): FrozenBatchNorm2d(2048)\n",
              "          (relu): ReLU(inplace=True)\n",
              "        )\n",
              "        (2): Bottleneck(\n",
              "          (conv1): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
              "          (bn1): FrozenBatchNorm2d(512)\n",
              "          (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
              "          (bn2): FrozenBatchNorm2d(512)\n",
              "          (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
              "          (bn3): FrozenBatchNorm2d(2048)\n",
              "          (relu): ReLU(inplace=True)\n",
              "        )\n",
              "      )\n",
              "    )\n",
              "    (fpn): FeaturePyramidNetwork(\n",
              "      (inner_blocks): ModuleList(\n",
              "        (0): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1))\n",
              "        (1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1))\n",
              "        (2): Conv2d(2048, 256, kernel_size=(1, 1), stride=(1, 1))\n",
              "      )\n",
              "      (layer_blocks): ModuleList(\n",
              "        (0): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
              "        (1): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
              "        (2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
              "      )\n",
              "      (extra_blocks): LastLevelP6P7(\n",
              "        (p6): Conv2d(256, 256, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1))\n",
              "        (p7): Conv2d(256, 256, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1))\n",
              "      )\n",
              "    )\n",
              "  )\n",
              "  (panoptic_head): PanopticHead(\n",
              "    (cls_tower): Sequential(\n",
              "      (0): Conv2d(256, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
              "      (1): GroupNorm(16, 128, eps=1e-05, affine=True)\n",
              "      (2): ReLU()\n",
              "      (3): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
              "      (4): GroupNorm(16, 128, eps=1e-05, affine=True)\n",
              "      (5): ReLU()\n",
              "      (6): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
              "      (7): GroupNorm(16, 128, eps=1e-05, affine=True)\n",
              "      (8): ReLU()\n",
              "      (9): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
              "      (10): GroupNorm(16, 128, eps=1e-05, affine=True)\n",
              "      (11): ReLU()\n",
              "    )\n",
              "    (bbox_tower): Sequential(\n",
              "      (0): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
              "      (1): GroupNorm(32, 256, eps=1e-05, affine=True)\n",
              "      (2): ReLU()\n",
              "      (3): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
              "      (4): GroupNorm(32, 256, eps=1e-05, affine=True)\n",
              "      (5): ReLU()\n",
              "      (6): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
              "      (7): GroupNorm(32, 256, eps=1e-05, affine=True)\n",
              "      (8): ReLU()\n",
              "      (9): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
              "      (10): GroupNorm(32, 256, eps=1e-05, affine=True)\n",
              "      (11): ReLU()\n",
              "    )\n",
              "    (cls_logits): Conv2d(640, 19, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
              "    (box_cls_logits): Conv2d(128, 8, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
              "    (bbox_pred): Conv2d(256, 4, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
              "    (centerness): Conv2d(256, 1, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
              "    (levelness): Conv2d(1280, 6, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
              "    (scales): ModuleList(\n",
              "      (0): Scale()\n",
              "      (1): Scale()\n",
              "      (2): Scale()\n",
              "      (3): Scale()\n",
              "      (4): Scale()\n",
              "    )\n",
              "  )\n",
              ")"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 11
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "UtYnPpvgjNu8",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        },
        "outputId": "fea16da5-26de-4ba4-f648-183a4b196215"
      },
      "source": [
        "model.load_state_dict(torch.load('/content/cvpr_realtime_pano_cityscapes_standalone_no_prefix.pth'))"
      ],
      "execution_count": 12,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<All keys matched successfully>"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 12
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "NRE7Y_XduJ1P",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        },
        "outputId": "53a0c29d-d62f-4469-e9e5-2df18df9aafe"
      },
      "source": [
        "# Prepare for model inference.\n",
        "input_image = Image.open('/content/realtime_panoptic/media/figs/test.png')\n",
        "data = {'image': input_image}\n",
        "# data pre-processing\n",
        "normalize_transform = P.Normalize(mean=cfg.input.pixel_mean, std=cfg.input.pixel_std, to_bgr255=cfg.input.to_bgr255)\n",
        "transform = P.Compose([\n",
        "    P.ToTensor(),\n",
        "    normalize_transform,\n",
        "])\n",
        "data = transform(data)\n",
        "print(\"Done with data preparation and model configuration.\")\n",
        "input_image_list = ImageList([data['image'].to(device)], image_sizes=[input_image.size[::-1]])\n",
        "input = torch.stack(input_image_list.tensors)"
      ],
      "execution_count": 13,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Done with data preparation and model configuration.\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "iKcPe9Dzt7uH",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 224
        },
        "outputId": "74f6cb25-4171-4265-bf2f-bef334fb523d"
      },
      "source": [
        "!wget 'https://storage.googleapis.com/groundai-web-prod/media%2Fusers%2Fuser_272722%2Fproject_255779%2Fimages%2Ftraining_0.jpg'"
      ],
      "execution_count": 14,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "--2020-08-17 16:38:33--  https://storage.googleapis.com/groundai-web-prod/media%2Fusers%2Fuser_272722%2Fproject_255779%2Fimages%2Ftraining_0.jpg\n",
            "Resolving storage.googleapis.com (storage.googleapis.com)... 74.125.142.128, 74.125.195.128, 74.125.20.128, ...\n",
            "Connecting to storage.googleapis.com (storage.googleapis.com)|74.125.142.128|:443... connected.\n",
            "HTTP request sent, awaiting response... 200 OK\n",
            "Length: 166289 (162K) [image/jpeg]\n",
            "Saving to: ‘media%2Fusers%2Fuser_272722%2Fproject_255779%2Fimages%2Ftraining_0.jpg’\n",
            "\n",
            "\r          media%2Fu   0%[                    ]       0  --.-KB/s               \rmedia%2Fusers%2Fuse 100%[===================>] 162.39K  --.-KB/s    in 0.001s  \n",
            "\n",
            "2020-08-17 16:38:33 (143 MB/s) - ‘media%2Fusers%2Fuser_272722%2Fproject_255779%2Fimages%2Ftraining_0.jpg’ saved [166289/166289]\n",
            "\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "0wLsL8AmqZ1I",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 119
        },
        "outputId": "c03789f3-7d29-4f1d-84d3-526fdb98e40d"
      },
      "source": [
        "# Prepare for model inference.\n",
        "model.eval()\n",
        "input_image = Image.open('/content/media%2Fusers%2Fuser_272722%2Fproject_255779%2Fimages%2Ftraining_0.jpg')\n",
        "data = {'image': input_image}\n",
        "# data pre-processing\n",
        "normalize_transform = P.Normalize(mean=cfg.input.pixel_mean, std=cfg.input.pixel_std, to_bgr255=cfg.input.to_bgr255)\n",
        "transform = P.Compose([\n",
        "    P.ToTensor(),\n",
        "    normalize_transform,\n",
        "])\n",
        "data = transform(data)\n",
        "print(\"Done with data preparation and model configuration.\")\n",
        "with torch.no_grad():\n",
        "    input_image_list = ImageList([data['image'].to(device)], image_sizes=[input_image.size[::-1]])\n",
        "    panoptic_result, _ = model.forward(input_image_list)\n",
        "    print(\"Done with model inference.\")\n",
        "    print(\"Process and visualizing the outputs...\")\n",
        "    instance_detection = [o.to('cpu') for o in panoptic_result[\"instance_segmentation_result\"]]\n",
        "    semseg_logics = [o.to('cpu') for o in panoptic_result[\"semantic_segmentation_result\"]]\n",
        "    semseg_prob = [torch.argmax(semantic_logit , dim=0) for semantic_logit in  semseg_logics]\n",
        "\n",
        "    seg_vis = visualize_segmentation_image(semseg_prob[0], input_image, cityscapes_colormap)\n",
        "    Image.fromarray(seg_vis.astype('uint8')).save('semantic_segmentation_result.jpg')\n",
        "    print(\"Saved semantic segmentation visualization in semantic_segmentation_result.jpg\")\n",
        "    det_vis = visualize_detection_image(instance_detection[0], input_image, cityscapes_instance_label_name)\n",
        "    Image.fromarray(det_vis.astype('uint8')).save('instance_segmentation_result.jpg')\n",
        "    print(\"Saved instance segmentation visualization in instance_segmentation_result.jpg\")\n",
        "    print(\"Demo finished.\")"
      ],
      "execution_count": 15,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Done with data preparation and model configuration.\n",
            "Done with model inference.\n",
            "Process and visualizing the outputs...\n",
            "Saved semantic segmentation visualization in semantic_segmentation_result.jpg\n",
            "Saved instance segmentation visualization in instance_segmentation_result.jpg\n",
            "Demo finished.\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "P6vhVH3lKv2g",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 340
        },
        "outputId": "66407bd6-b741-421a-baf3-6b5eaf5a8b06"
      },
      "source": [
        "from realtime_panoptic.utils.panoptic_vis import panoptic_visualization\n",
        "pan = panoptic_visualization(instance_detection[0], semseg_prob[0], input_image)"
      ],
      "execution_count": 16,
      "outputs": [
        {
          "output_type": "error",
          "ename": "ValueError",
          "evalue": "ignored",
          "traceback": [
            "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
            "\u001b[0;31mValueError\u001b[0m                                Traceback (most recent call last)",
            "\u001b[0;32m<ipython-input-16-c8171e7bf331>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m      1\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mrealtime_panoptic\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mutils\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpanoptic_vis\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mpanoptic_visualization\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mpan\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpanoptic_visualization\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minstance_detection\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msemseg_prob\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minput_image\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
            "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/realtime_panoptic/utils/panoptic_vis.py\u001b[0m in \u001b[0;36mpanoptic_visualization\u001b[0;34m(pred1, pred2, input_image)\u001b[0m\n\u001b[1;32m    322\u001b[0m     \u001b[0my_seg\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mseg_image\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpred2\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minput_image\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcm_seg\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0.5\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    323\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 324\u001b[0;31m     \u001b[0mx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmasked_image\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpred1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minput_image\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcityscapes_instance_label_name\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    325\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    326\u001b[0m     \u001b[0ms\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0msigmoid\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0msigmoid\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0my_instance\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
            "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/realtime_panoptic/utils/panoptic_vis.py\u001b[0m in \u001b[0;36mmasked_image\u001b[0;34m(predictions, original_image, label_id_to_names, fade_weight)\u001b[0m\n\u001b[1;32m    216\u001b[0m             \u001b[0;31m#visualized_image = (sigmoid(visualized_image) + sigmoid(y_instance))*(2*visualized_image)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    217\u001b[0m             \u001b[0;31m#visualized_image = visualized_image.astype('uint8')\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 218\u001b[0;31m             \u001b[0medge\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0medge\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mgetBordered\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtwotothree\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mthresh\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m3\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    219\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    220\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
            "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/realtime_panoptic/utils/panoptic_vis.py\u001b[0m in \u001b[0;36mtwotothree\u001b[0;34m(x)\u001b[0m\n\u001b[1;32m    134\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    135\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mtwotothree\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 136\u001b[0;31m     \u001b[0mz\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mconcatenate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreshape\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m480\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m640\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreshape\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m480\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m640\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreshape\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m480\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m640\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    137\u001b[0m     \u001b[0;32mreturn\u001b[0m \u001b[0mz\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    138\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0msigmoid\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
            "\u001b[0;31mValueError\u001b[0m: cannot reshape array of size 2097152 into shape (480,640,1)"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "2j52Ee_yLVcC",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 236
        },
        "outputId": "128ba5b1-e3f9-43a0-8ab7-18bc9ef1be0a"
      },
      "source": [
        "import matplotlib.pyplot as plt\n",
        "plt.imshow(pan)"
      ],
      "execution_count": 17,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<matplotlib.image.AxesImage at 0x7fa1375c9a20>"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 17
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "gaGIUhyEqpUV",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "def panoptic(input_image):\n",
        "  # Prepare for model inference.\n",
        "  model.eval()\n",
        "  data = {'image': input_image}\n",
        "  # data pre-processing\n",
        "  normalize_transform = P.Normalize(mean=cfg.input.pixel_mean, std=cfg.input.pixel_std, to_bgr255=cfg.input.to_bgr255)\n",
        "  transform = P.Compose([\n",
        "      P.ToTensor(),\n",
        "      normalize_transform,\n",
        "\n",
        "  ])\n",
        "  data = transform(data)\n",
        "    #print(\"Done with data preparation and model configuration.\")\n",
        "  with torch.no_grad():\n",
        "      input_image_list = ImageList([data['image'].to(device)], image_sizes=[input_image.size[::-1]])\n",
        "      panoptic_result, _ = model.forward(input_image_list)\n",
        "      #print(\"Done with model inference.\")\n",
        "      #print(\"Process and visualizing the outputs...\")\n",
        "      instance_detection = [o.to('cpu') for o in panoptic_result[\"instance_segmentation_result\"]]\n",
        "      semseg_logics = [o.to('cpu') for o in panoptic_result[\"semantic_segmentation_result\"]]\n",
        "      semseg_prob = [torch.argmax(semantic_logit , dim=0) for semantic_logit in  semseg_logics]\n",
        "\n",
        "      pan = panoptic_visualization(instance_detection[0], semseg_prob[0], input_image)\n",
        "      return pan"
      ],
      "execution_count": 19,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "YSU75H_ycXWp",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 88
        },
        "outputId": "fe42a553-d205-412c-85af-983fa521af2d"
      },
      "source": [
        "from PIL import Image\n",
        "import cv2\n",
        "frame = cv2.imread('/content/realtime_panoptic/media/figs/test.png')\n",
        "frame = Image.fromarray(np.uint8(frame)).convert('RGB')\n",
        "z = panoptic(frame) \n",
        "Image.fromarray(z.astype('uint8')).save(\"/content/{}.jpg\".format(1))"
      ],
      "execution_count": 41,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "torch.Size([3, 1024, 2048])\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "stream",
          "text": [
            "/usr/local/lib/python3.6/dist-packages/realtime_panoptic/utils/panoptic_vis.py:139: RuntimeWarning: overflow encountered in exp\n",
            "  z = 1/(1 + np.exp(-x))\n"
          ],
          "name": "stderr"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "c-mMJ8309BUC",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 204
        },
        "outputId": "b088db96-318c-45e3-b2e5-d5bdb8351660"
      },
      "source": [
        "!wget http://s150102174.onlinehome.fr/Lara/files/Lara_UrbanSeq1_MPEG2.mpg"
      ],
      "execution_count": 21,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "--2020-08-17 16:43:51--  http://s150102174.onlinehome.fr/Lara/files/Lara_UrbanSeq1_MPEG2.mpg\n",
            "Resolving s150102174.onlinehome.fr (s150102174.onlinehome.fr)... 217.160.0.161\n",
            "Connecting to s150102174.onlinehome.fr (s150102174.onlinehome.fr)|217.160.0.161|:80... connected.\n",
            "HTTP request sent, awaiting response... 200 OK\n",
            "Length: 208220164 (199M) [video/mpeg]\n",
            "Saving to: ‘Lara_UrbanSeq1_MPEG2.mpg’\n",
            "\n",
            "Lara_UrbanSeq1_MPEG 100%[===================>] 198.57M  4.92MB/s    in 43s     \n",
            "\n",
            "2020-08-17 16:44:34 (4.65 MB/s) - ‘Lara_UrbanSeq1_MPEG2.mpg’ saved [208220164/208220164]\n",
            "\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "M-h9R-1iSfDe",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 122
        },
        "outputId": "333059a8-a493-4f35-e47f-bd45020ad446"
      },
      "source": [
        "from google.colab import drive\n",
        "drive.mount('/content/drive')"
      ],
      "execution_count": 18,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Go to this URL in a browser: https://accounts.google.com/o/oauth2/auth?client_id=947318989803-6bn6qk8qdgf4n4g3pfee6491hc0brc4i.apps.googleusercontent.com&redirect_uri=urn%3aietf%3awg%3aoauth%3a2.0%3aoob&scope=email%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdocs.test%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdrive%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdrive.photos.readonly%20https%3a%2f%2fwww.googleapis.com%2fauth%2fpeopleapi.readonly&response_type=code\n",
            "\n",
            "Enter your authorization code:\n",
            "··········\n",
            "Mounted at /content/drive\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "yDcv8FtJ-Zsq",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "import cv2 \n",
        "from PIL import Image\n",
        "import time\n",
        "from realtime_panoptic.utils.panoptic_vis import panoptic_visualization\n",
        "\n",
        "video = cv2.VideoCapture('/content/Lara_UrbanSeq1_MPEG2.mpg')\n",
        "width = int(video.get(cv2.CAP_PROP_FRAME_WIDTH))\n",
        "height = int(video.get(cv2.CAP_PROP_FRAME_HEIGHT))\n",
        "\n",
        "# We need to check if camera \n",
        "# is opened previously or not \n",
        "if (video.isOpened() == False): \n",
        "\tprint(\"Error reading video file\") \n",
        "\n",
        "# We need to set resolutions. \n",
        "size = (width, height) \n",
        "\n",
        "count = 1\n",
        "# Below VideoWriter object will create \n",
        "# a frame of above defined The output \n",
        "# is stored in 'filename.avi' file. \n",
        "start_time = time.time()\n",
        "while(True): \n",
        "  ret, frame = video.read()\n",
        "  print(count)\n",
        "  if ret == True:\n",
        "\n",
        "    frame = Image.fromarray(np.uint8(frame)).convert('RGB')\n",
        "    z = panoptic(frame) \n",
        "    Image.fromarray(z.astype('uint8')).save(\"/content/drive/My Drive/RealTimePanoptic/{}.jpg\".format(count))\n",
        "      \n",
        "    count = count + 1\n",
        "    #cv2_imshow(detr(frame))\n",
        "    # Break the loop \n",
        "\n",
        "  else:\n",
        "    break\n",
        "\n",
        "# When everything done, release \n",
        "# the video capture and video \n",
        "# write objects \n",
        "video.release() \n",
        "\n",
        "# Closes all the frames \n",
        "cv2.destroyAllWindows() \n",
        "\n",
        "print(\"The video was successfully saved\") \n",
        "print(\"--- %s seconds ---\" % (time.time() - start_time))\n",
        "t = time.time() - start_time"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "PsdgGwx-mh4p",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        },
        "outputId": "283e6cd0-d262-4a64-ec76-4c9fb09ecc5f"
      },
      "source": [
        "1000/t"
      ],
      "execution_count": 21,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "2.6920027664183475"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 21
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "Ad0Op647RxY7",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 119
        },
        "outputId": "21969134-1690-4e6e-843b-741b5313f56c"
      },
      "source": [
        "import os\n",
        "import moviepy.video.io.ImageSequenceClip\n",
        "image_folder='/content/drive/My Drive/RealTimePanoptic'\n",
        "fps=30\n",
        "\n",
        "image_files = [image_folder+'/'+img for img in os.listdir(image_folder) if img.endswith(\".jpg\")]\n",
        "clip = moviepy.video.io.ImageSequenceClip.ImageSequenceClip(image_files, fps=fps)\n",
        "clip.write_videofile('/content/drive/My Drive/newmyVideo12.mp4')"
      ],
      "execution_count": 29,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "[MoviePy] >>>> Building video /content/drive/My Drive/newmyVideo12.mp4\n",
            "[MoviePy] Writing video /content/drive/My Drive/newmyVideo12.mp4\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "stream",
          "text": [
            "100%|██████████| 7270/7270 [04:00<00:00, 30.25it/s]\n"
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "[MoviePy] Done.\n",
            "[MoviePy] >>>> Video ready: /content/drive/My Drive/newmyVideo12.mp4 \n",
            "\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "WLMT9EfXVTND",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        ""
      ],
      "execution_count": null,
      "outputs": []
    }
  ]
}